<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>1.普通的监视属性的操作:使用watch去操作已存在属性</title>
     <!-- 1.导入vue.js -->
    <script src="../js/vue.js"></script>
</head>
<body>
    <!-- 2.准备好一个容器-->
<div id="root">
    <h2>今天天气很{{ info }}</h2>
    <button @click="changeWeather">切换天气</button>
    <input type="text" name="isHot" id="" v-model="isHot">
</div>

</body>
<script>
    Vue.config.productionTip= false
    new Vue({
        el:'#root',
        data(){
            return {
                isHot: true
            }
        },
        //计算属性“info”
        computed:{
            info(){
                console.log("isHot发生变化后触发计算属性的方法")
                return this.isHot ? '下雨天' : '晴天'
            }
        },
        methods:{
            changeWeather(){
                console.log("点击事件触发：","fasd")
                this.isHot = !this.isHot
            }
        },
        //监视属性,监视属性对应的值是否发生变化
        watch:{
            'isHot':{ //侦听器里面的属性  还可以写成 'isHot'
                // handler什么时候调用？当isHot发生改变时。
                immediate: true, // 初始化时让handler调用一下
                handler(newValue,oldValue){
                    console.log("isHot发生变化了：",newValue,oldValue)
                }
            }
        } 
        /**
         * 但某一个属性的值发生变化后，先触发的点击事件，然后触发侦听器，最有触发计算器
         */
    })
</script>
    
</html>